<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>组件参数校验与非props特性</title>
</head>
<body>
  <script src="./js/vue2.js"></script>
  <div id="app">
    <!-- 父组件中通过属性传递参数进子组件 -->
    <!-- 2. 如果子组件中并没有使用props接收，则content为非props特性，将会在dom中显示出来 -->
    <child content="hello world"></child>
  </div>
</body>
</html>
<script>

  Vue.component('child', {
    // 子组件通过props来获取参数
    // props: ['content'],
    props: {
      // 2. props参数校验
      // 将props改成对象形式，并对参数进行类型校验
      // content: String,
      // content: [String, Number], //参数为字符串或数字
      content:{
        type:String, // string 类型
        required:true, // 必传参数
        default: 'default value', // 默认值
        // 校验器
        validator: function(val){
          // val 是传入的参数，返回true或false
          return (val.length > 5)
        }
      }
    },
    template:`
      <div>{{content}}</div>
    `,
  });

  var vm = new Vue({
    el: '#app',
  });
</script>